/**
 * 绘图所需的阴影信息
 */
export interface ShadowDrawInfo {
  shadowColor?: string;
  shadowOffsetX?: number;
  shadowOffsetY?: number;
  shadowBlur?: number;
}

/**
 * 基本的 style 配置
 */
export interface BaseStyleInfo {
  strokeStyle?: string | CanvasGradient | CanvasPattern;
  fillStyle?: string | CanvasGradient | CanvasPattern;
}

/**
 * 绘图所需的通用信息
 */
export type BaseDrawInfo = BaseStyleInfo & ShadowDrawInfo;

export interface BaseLineInfo {
  lineWidth?: number;
  /** lineJoin 指定两条线的连接样式
   * "miter": 默认，通过延伸连接部分的外边缘，使其交于一点形成一个额外的菱形区域
   * "bevel": 在连接部分的末端填充一个额外的以三角形为底的区域
   * "round": 填充一个额外的，圆心在相连部分末端的扇形，绘制拐角的形状。圆角的半径是线段的宽度
   */
  lineJoin?: CanvasLineJoin;
  /**
   * 该属性支队 miter 有效
   */
  miterLimit?: number;
  /** 线帽 */
  lineCap?: CanvasLineCap;
  /** 虚线样式 */
  lineDash?: number[];
}

export interface Point {
  x: number;
  y: number;
}

export type PatternRepetition = null | "repeat" | "repeat-x" | "repeat-y";
